import type { RouteMeta } from 'vue-router';

/** 输出DTO：菜单信息 */
export interface MenuInfoOutputDto {
  /** 主键，唯一标识 */
  id: string | bigint;
  /** 路径 */
  path: string;
  /** 当URL与此路由匹配时要显示的组件 */
  component: any;
  /** 路由单元 */
  meta: RouteMeta;
  /** 名称 */
  name?: string;
  /** 别名 */
  alias?: string | string[];
  /** 重定向 */
  redirect?: string;
  /** 区分大小写 */
  caseSensitive?: boolean;
  /** 子集合 */
  children?: MenuInfoOutputDto[];
}
/**
 * @description: 菜单信息数组
 */
export type MenuInfoOutputDtos = MenuInfoOutputDto[];

/** 输入DTO：菜单信息 */
export interface MenuInfoInputDto {
  /** 主键，唯一标识 */
  id: string | bigint;
  /** 路径 */
  path: string;
  /** 当URL与此路由匹配时要显示的组件 */
  component: any;
  /** 路由单元 */
  meta: RouteMeta;
  /** 名称 */
  name?: string;
  /** 别名 */
  alias?: string | string[];
  /** 重定向 */
  redirect?: string;
  /** 区分大小写 */
  caseSensitive?: boolean;
  /** 父编号 */
  parentId?: string | bigint | null | undefined;
  /** 顺序编号 */
  orderNo?: number | null | undefined;
}
